package com.divemotor.ventarepuestosinternet.service.impl;

import java.io.Serializable;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.divemotor.ventarepuestosinternet.beans.CotizacionConEstadosBusquedaBean;
import com.divemotor.ventarepuestosinternet.dao.CotizacionConEstadosDAO;
import com.divemotor.ventarepuestosinternet.exception.DivemotorBusinessException;
import com.divemotor.ventarepuestosinternet.model.CotizacionConEstados;
import com.divemotor.ventarepuestosinternet.service.CotizacionConEstadosService;
import com.divemotor.ventarepuestosinternet.service.SucursalService;
import com.divemotor.ventarepuestosinternet.service.VendedorService;
import com.divemotor.ventarepuestosinternet.util.DatosDeSession;

@Service(value="cotizacionConEstadosService")
@Transactional
public class CotizacionConEstadosServiceImpl implements CotizacionConEstadosService, Serializable {

	private static final long serialVersionUID = 2780342588725504069L;
	
	@Autowired
	private CotizacionConEstadosDAO cotizacionConEstadosDAO;
	@Autowired
	private SucursalService sucursalService;
	@Autowired
	private VendedorService vendedorService;
	
	@Override
	public List<CotizacionConEstados> buscar(CotizacionConEstadosBusquedaBean cotizacionBusquedaBean) throws DivemotorBusinessException {
		cotizacionBusquedaBean.setListaSucursalesPermitidas(sucursalService.listarSucursalesPorPerfilAutenticado());
		return cotizacionConEstadosDAO.buscar(cotizacionBusquedaBean);
	}
	
	@Override
	public List<CotizacionConEstados> buscarCotizacionesVendedor(CotizacionConEstadosBusquedaBean cotizacionBusquedaBean) throws DivemotorBusinessException {
		cotizacionBusquedaBean.getCotizacionConEstados().setIdVendedor(vendedorService.obtenerPorUsuario(DatosDeSession.obtenerUsuarioAutenticado()).getIdVendedor());
		cotizacionBusquedaBean.setListaSucursalesPermitidas(sucursalService.listarSucursales());
		return cotizacionConEstadosDAO.buscar(cotizacionBusquedaBean);
	}

}
